package dongtai;

public class eryisan {
    public static int rob(int[] nums) {
        int n=nums.length;
        if(n==1){
            return nums[0];
        }
        if(n==2){
            return Math.max(nums[0],nums[1]);
        }
        int[] f1=new int[n];
        int[] g1=new int[n];
        //专门对于偷一个房间进行初始化
        f1[0]=nums[0];
        g1[0]=0;
        f1[1]=g1[0]+0;//因为不能偷第二个，所以相当于直接把nums[1]设为0了
        //g1[0]+nums[1]
        g1[1]=Math.max(f1[0],g1[0]);
        for(int i=2;i<=n-2;i++){
            f1[i]=g1[i-1]+nums[i];
            g1[i]=Math.max(f1[i-1],g1[i-1]);
        }
        int ret=Math.max(f1[n-2],g1[n-2]);
        int[] f2=new int[n];
        int[] g2=new int[n];
        //因为不选择对第一个房间进行偷盗，则nums[0]=0
        //f2[0]=nums[0]
        f2[0]=0;
        g2[0]=0;
        //不选择偷盗第一个
        for(int i=1;i<=n-1;i++){
            f2[i]=g2[i-1]+nums[i];
            g2[i]=Math.max(f2[i-1],g2[i-1]);
        }
        int ret1=Math.max(f2[n-1],g2[n-1]);
        return Math.max(ret,ret1);

    }

    public static void main(String[] args) {
       int[] nums ={2,3,2};
        int rob = rob(nums);
        System.out.println(rob);


    }
}
